package com.clstu.staticmathod_.abstrac_;

public class Template {
    public static void main(String[] args) {
         new B().runTime();
         new C().runTime();
    }
}
abstract class A{
    public abstract void f();

    public void runTime(){//测试f()函数的运行时间

        long start=System.currentTimeMillis();//系统提供的时间，返回从1970念一月一号到现在的经历的毫秒数
        f();  //模板设计模式，可以不用反复写前后的代码，提高代码复用性，也体现了抽象类的用处
        long end=System.currentTimeMillis();
        System.out.println("f() 的执行时间： " +(end-start)+"ms");
    }
}

class B extends A{
    @Override
    public void f() {
        long sum=0;
        for (long i = 0; i < 1000000; i++) {
            sum+=i;
        }
    }
}

class C extends A{
    @Override
    public void f() {
        long res=0;
        for (int i = 0; i < 100000; i++) {
            res=res^i;
        }
    }
}